Streaming technologies are becoming popular on the world-wide-web (WWW). Streaming allows clients connected via the Internet to receive and use video data and other forms of multimedia data (hereinafter, “multimedia data”) before downloading entire files containing the multimedia data. A client can download a portion of a file, decompress that portion, and begin using a program, such as video player program, before the downloading of the entire file is completed. The downloaded multimedia data is buffered, allowing the client to use the downloaded multimedia data while the rest of the multimedia data is being downloaded. However, the client can only access the portion already downloaded, not the entire file.
Data communication networks for delivering multimedia data to clients, such as pay-per-view services; typically include a data communication system and a client apparatus for each client. Data communication systems usually include: one or more application servers, each having storage for multimedia files, one or more streaming servers for sending the multimedia files to client apparatuses, and a network for connecting the data communication system to all of the client apparatuses. Each streaming server has a random access memory (RAM) for receiving and storing multimedia files that are transferred to the RAM from the one or more application servers. Multimedia files are transferred to each streaming server at approximately the same rate that the same multimedia files are delivered to client apparatuses. Alternatively, multimedia files can be transferred from a RAM of a streaming server to a RAM of another streaming server.
To transfer a multimedia file to a client apparatus after receiving a request, the streaming server having the requested multimedia file is connected to the requesting client apparatus. Then, the requested multimedia file is transferred via the connection to the requesting client apparatus. Typically, a streaming server stores all multimedia files, which are to be streamed to the requesting client apparatuses.
However, applications such as data management, transfer, and processing can be better performed by storing some multimedia files, which are streamed to client apparatuses, on an application server, and utilizing streaming servers only to performing the streaming function. Storing multimedia files on an application server is desirable, because the application server is where data management can be optimized and perfected. Further, it is wasteful of memory space to store all multimedia files to be streamed in streaming servers, and may even result in overloading of the streaming severs due to reception of a large number of client requests during streaming.
However, poor performance of application servers is achieved by storing all multimedia files to be streamed, on the application servers. Therefore, it is important to have a data communication system that selectively stores some multimedia files on application servers and other multimedia files on streaming servers.
Several patents have addressed problems associated with storing multimedia files on streaming servers. U.S. Pat. No. 5,758,085 to Kouoheris and Kumar addresses the problem of limited bandwidth for transferring multimedia data over telephone lines and television networks to clients. Overhead associated with the delivery of video content from a server to a requesting client is reduced by off-loading video content to switches in a network, which can more efficiently deliver the video content to the requesting clients. However, the Kouoheris invention does not address the above need to store some multimedia files on application servers.
U.S. Pat. No. 5,933,603 to Vahalia and Forecast teaches a video file sever that provides video-on-demand service by maintaining and dynamically allocating sliding windows of video data in stream servers. With this invention a stream server can be prevented from becoming overloaded with client requests for transfer of data by allocating reserve memory in another stream server to store a duplicate of the original data set in the overloaded stream server. However, the Vahalia invention simply balances data storage between multiple streaming servers and does not address the above need to store some multimedia files on application servers.
In light of the above-mentioned disadvantages, there is an apparent need for a data communication system having an application server and a streaming server, for selectively storing some multimedia files on the streaming server and other multimedia files on the application server.